#pragma once
#include <string>
#include <map>
#include <set>
#include <list>
#include <vector>

#include "CmdGroupKey.h"

using namespace std;

class CmdFile
{
private:
	set<string> m_groupKeyDef;

	typedef list<string> Group;
	typedef vector<list<string>> Groups;
	Groups m_randGroups;
	map< CmdGroupKey, list<string>* > m_groups;
public:
	CmdFile();
	~CmdFile();

	void addLine( const string& line );
	void randomize();
	
	void write( ofstream &out  ) const;
};
